// 演示对象比较的例子

function test(){  //每次执行都会创建一个新的对象
    return {
        name: 'zeng',
        age: '18'
    }
}

const testObj1 =test() 
const testObj2 =test()

console.log('=== 比较结果:', testObj1 === testObj2) // false - 不同的对象引用
console.log('内容是否相同:', JSON.stringify(testObj1) === JSON.stringify(testObj2)) // true - 内容相同

// 如果想要返回同一个对象，可以这样做：
const singletonObj = {
    name: 'zeng',
    age: '18'
}

function getSingleton(){
    return singletonObj // 返回同一个对象引用
}

const obj1 = getSingleton()
const obj2 = getSingleton()

console.log('单例模式比较:', obj1 === obj2) // true - 同一个对象引用

// 或者使用闭包创建单例
function createSingleton(){
    let instance = null
    
    return function(){
        if(!instance){
            instance = {
                name: 'zeng',
                age: '18'
            }
        }
        return instance
    }
}

const getSingletonInstance = createSingleton()
const instance1 = getSingletonInstance()
const instance2 = getSingletonInstance()

console.log('闭包单例比较:', instance1 === instance2) // true